package cn.shop.merchant.mapper.user;

import cn.shop.merchant.mapper.IBaseMapper;
import cn.shop.merchant.model.user.MerchantRole;
import cn.shop.merchant.req.AssignRoleReq;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @author : 李一涵
 * @date : Created in 2021-11-17 11:05
 * @description :
 */
@Mapper
public interface MerchantRoleMapper extends IBaseMapper<MerchantRole> {

	/**
	 * 分配角色
	 *
	 * @return 影响条数
	 */
	int assignRole(AssignRoleReq assignRoleReq);

	/**
	 * 通过用户id移除 用户和角色之间的关系
	 *
	 * @param userId 用户id
	 * @return 影响条数
	 */
	int removeRoleByUserId(Long userId);

	/**
	 * 通过角色code查询角色的所有权限
	 *
	 * @param code 角色code
	 * @return 查询到的权限code
	 */
	List<String> permissionCodeByRoleCode(String code);

	/**
	 * 通过角色id查询角色所有权限
	 *
	 * @param id 用户id
	 * @return 查询到的权限id
	 */
	List<Long> queryPermissionsByRoleId(Long id);

	/**
	 * 获取用户关联的角色
	 *
	 * @param id 用户id
	 * @return
	 * @author jy
	 * @since 2022/1/17 15:19
	 */
	List<Long> getRoleByUserId(Long id);

}
